package sqlnode.impl;


/*
* @auther 顶风少年 
* @mail dfsn19970313@foxmail.com
* @date 2020-01-04 18:10
* @notify 纯文本的sql节点，包含#{} 但是不包含 ${} 的
* @version 1.0
*/

import mapping.DynamicContext;
import sqlnode.SqlNode;

public class StaticTextSqlNode implements SqlNode {

    private String sqlText;

    public StaticTextSqlNode(String sqlText){
        this.sqlText = sqlText;
    }

    /*
    * 每一个StaticTextSqlNode 仅仅包含纯文本的sql语句和#{}所以不需要额外的处理，他本身的apply，只是
    * 作为拼接。设想select * from 是一个sqlNode where id = #{id} 是第二个sqlNode只要拼接就可以了。不管作为
    * 第几个sqlNode，StaticTextSqlNode不需要做其他的操作${}需要将其中的文本替换，而IfSqlNode则需要判断test等。
    * */
    @Override
    public void apply(DynamicContext context)throws Exception {
        //添加到 DynamicContext
        context.appendSql(sqlText);
    }
}
